﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HS_Model.World;

namespace HS_Model {
    class Program {
        static char opcion;
        static int MONTO=800;
        static void Main(string[] args) {
            Game partida = new Game();            

            //Imprime el mapa inicialmente:
            partida.getMapa().imprimeTablero(); 

            bool jugando = true; //permite iniciar el juego, solo cambiara a false en GAMEOVER y EXIT                        
            /************************************* COMIENZO *******************************************/
            while (jugando) {

                /*seccion1 : Se elige que se quiere realizar*/
                /****************************** MENU DE JUEGO *************************************/
                bool menu = true;
                while (menu) {
                    //Imprimiendo las Opciones Generales del Juego antes de la Partida, y retorna la opción
                    opcion = partida.mostrarMenuJuego(); //se muestran las opciones y elegimos opcion
                    switch (opcion) {
                        case '1':   //comprar soldados
                                    partida.cargarSoldados(); //permite comprar los soldados,se detendra cuando no se tenga suficiente dinero o ya no se desee comprar                                    
                                    //partida.getMapa().imprimeTablero(); //solo para verificar que esta cargadando soldados
                                    break;
                        case '2':  //Jugar Ahora                                    
                        case '3':   //Reiniciar                                    
                        case '4':   //Salir
                                    menu = false;
                                    break;
                        default:    //Opcion incorrecta
                                    Console.WriteLine("\nColoque un valor coherente, se repetirá el proceso");
                                    continue;
                    }
                } /*fin while menu */
                
                /*Seccion 2: Se realiza la accion emitida*/
                /*opcion==1 ya se hizo que fue agregar soldados al juego segun lo que quiera el jugador*/

                /********************************** JUGAR ******************************************/
                if (opcion == '2') {
                    partida.getMapa().imprimeTablero();
                    partida.imprimirListaSoldados();
                    partida.cargarMonstruos();
                    partida.imprimirListaMonstruos();
                    partida.getMapa().imprimeTablero(); //solo para verificar que esta cargado con monstruos
                    Console.WriteLine("COMENZANDO JUEGO - LOADING ... PRESS ENTER TO CONTINUE");
                    Console.ReadLine();
                    
                    /*Cuerpo del juego - aca viene el bucle que simulara el juego*/
                    /*HAZLO CARLOS .... POR EL GRUPO, POR EL CHAVO&LILI POR TODOS ¡¡¡ */


                }


                /***************************** REINICIAR JUEGO **************************************/                
                if (opcion == '3') {
                    //deberia abortar del juego
                    Console.WriteLine("\nSeguro que desea reiniciar el juego S/N");
                    ConsoleKeyInfo result = Console.ReadKey();
                    Console.WriteLine();
                    if (result.KeyChar == 'S' || result.KeyChar == 's') {
                        partida.getMapa().reiniciarMapa();
                        partida.setDineroAcumulado(MONTO); //seteamos el dinero acumulado ya que empieza desde cero
                        Console.WriteLine("REINICIANDO - LOADING ...");
                        Console.ReadLine();                        
                    }
                }

                /******************************* SALIR JUEGO ***************************************/
                if (opcion == '4') {
                    //deberia abortar del juego
                    Console.WriteLine("\nDesea salir del juego S/N");
                    ConsoleKeyInfo result = Console.ReadKey();
                    Console.WriteLine();
                    if (result.KeyChar == 'S' || result.KeyChar == 's') {
                        Console.WriteLine("GAME OVER");
                        Console.ReadLine();
                        jugando = false;                        
                    }                    
                }                                                              
                
            } /*fin while jugando*/
            
            Console.ReadLine();
            Console.ReadLine();
            
        }/*fin Main*/
    }/*fin Class */
}/*fin namespace*/


